﻿using System;
using System.Collections.Generic;
using System.Text;

namespace SharpSoft.Lexing
{
    public class CharHelper
    {
        /// <summary>
        /// 将两个字符对象进行比较，并指示此实例在排序顺序中c1是位于c2之前、之后还是与其出现在同一位置。
        /// </summary>
        /// <param name="c1">第一个字符</param>
        /// <param name="c2">第二个字符</param>
        /// <param name="ignoreCase">比较是否忽略字符的大小写</param>
        /// <returns></returns>
        public static int Compare(char c1, char c2, bool ignoreCase)
        {
            if (!ignoreCase)
            {
                return c1.CompareTo(c2);
            }
            //如果忽略大小写比较，则将两字符统一转换为小写后再比较
            if (c1 >= 65 && c1 <= 90)
            {
                c1 = (char)(c1 + 32);
            }
            if (c2 >= 65 && c2 <= 90)
            {
                c2 = (char)(c2 + 32);
            }
            return c1.CompareTo(c2);
        }
    }
}
